use std::time::Duration;

#[derive(Clone)]
pub struct WorkflowConfig {
    pub max_retries: u32,
    pub retry_delay: Duration,
    pub execution_timeout: Duration,
}

impl Default for WorkflowConfig {
    fn default() -> Self {
        Self {
            max_retries: 3,
            retry_delay: Duration::from_secs(5),
            execution_timeout: Duration::from_secs(3600),
        }
    }
}

#[derive(Debug)]
pub struct SourceConfig {
    // Define fields for SourceConfig
}

#[derive(Debug)]
pub struct SinkConfig {
    // Define fields for SinkConfig
}

#[derive(Debug)]
pub struct RetryPolicy {
    // Define fields for RetryPolicy
} 